package com.example.inami.third.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.util.Date;
import java.util.List;

@Data
public class DeviceInfoResult {

    private Date activationTime;
    private String alias;
    private String ancestors;
    private String areaDeptName;
    private String areaPerson;
    private String areaPersonPhonenumber;
    private Integer bat;
    private String batVol;
    private String boxNo;
    private String boxNum;
    private String boxNumName;
    private String buildingDetailed;
    private String buildingName;
    private String cardMark;
    private Boolean checkHeartFlag;
    private String comment;
    private String communityName;
    private List<Object> contactList;
    private String createBy;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    private Integer csq;
    private Long currDeptId;
    private String currState;
    private Dept dept;
    private Long deptId;
    private List<Long> deptIdList;
    private String deptLimit;
    private String deptName;
    private Long deptTypeId;
    private String detailedAddress;
    private String deviceA;
    private String deviceAttr;
    private String deviceAttrCode;
    private Long deviceAttrId;
    private List<DeviceAttr> deviceAttrList;
    private String deviceAttrName;
    private String deviceAttrValue;
    private Long deviceBatch;
    private Long deviceBatchId;
    private String deviceBatchName;
    private String deviceDept;
    private String deviceEventName;
    private Long deviceId;
    private String deviceImei;
    private List<String> deviceImeiList;
    private String deviceImeiPrecise;
    private List<String> deviceImeiSet;
    private String deviceImeis;
    private String deviceImsi;
    private String deviceMakerName;
    private String devicePerson;
    private String devicePersonPhonenumber;
    private Long deviceRegisterId;
    private List<Object> deviceStates;
    private String deviceTag;
    private String deviceType;
    private Long deviceTypeAttrId;
    private String deviceTypeName;
    private List<Object> deviceTypeSet;
    private String deviceVersionCode;
    private Long deviceVersionId;
    private List<Long> deviceVersionIds;
    private String deviceVersionName;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date enabledTime;

    private String endTime;
    private Date expireDate;
    private Integer expires;
    private List<Contact> firstContactList;
    private Integer firstShipment;
    private Boolean flagBuilding;
    private Integer flagFirst;
    private Boolean flagFollow;
    private Integer flagRetail;
    private String flagRetailName;
    private String floorName;
    private String forChildDept;
    private List<Object> fourthContactList;
    private Integer gasVol;
    private List<Object> generalContactList;
    private String generalExt;
    private String hostImei;
    private List<Object> householdList;
    private Integer humidity;
    private String iccid;
    private String iccidOperator;
    private Long id;
    private String imeiReverse;
    private String imgPath;
    private Date installTime;
    private String installationArea;
    private String installer;
    private String installerPhoneNumber;
    private String intervalReportTime;
    private String ip;
    private String isAsc;
    private List<Object> isolatePersonnelList;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date latestActivityTime;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date latestAlarmTime;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date latestFaultTime;

    private String latitude;
    private String longitude;
    private List<Object> mainContactList;
    private String maker;
    private String number;
    private String offLine;
    private String onlineTime;
    private String orderByColumn;
    private Long originalDeptId;
    private String originalDeptName;
    private String ownSubFlag;
    private Integer pageNum;
    private Integer pageSize;
    private Object params;
    private String pcColor;
    private String pcIcon;
    private String phonenumber;
    private Object placeBuilding;
    private Long placeBuildingId;
    private Long placeCommunityId;
    private Object placeFloor;
    private Long placeFloorId;
    private String placeFormat;
    private PlaceRoom placeRoom;
    private Long placeRoomId;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date platformExpireDate;

    private String platformFeeEnd;
    private Integer platformFeeExpires;
    private String platformFeeExpiresStr;
    private String platformFeeStart;
    private String platformId;
    private String platformType;
    private String platformTypeName;
    private Integer port;
    private Object project;
    private Long projectId;
    private String projectName;
    private String proprietor;
    private String protectionState;
    private String region;
    private String regionCodeAll;
    private String registerOperator;
    private List<Object> relateCameraList;
    private Integer relateCount;
    private String relateState;
    private String remark;
    private String roomDetailed;
    private String roomName;
    private String searchStr;
    private String searchValue;
    private List<Object> secondContactList;
    private String serviceLifeTime;
    private String shipmentState;
    private Boolean showFlag;
    private Integer startIdx;
    private String startTime;
    private String state;
    private String stateName;
    private String stateRemark;
    private String subDeviceImei;
    private String sunCode;
    private Integer suppliesNum;
    private Long sysDeptId;
    private String sysTransferToDept;
    private String tableName;
    private Integer temp;
    private String testResult;
    private Integer testState;
    private String testStateName;
    private List<Object> thirdContactList;
    private String todayDate;
    private String tomorrowDate;
    private String transferToDept;
    private String updateBy;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    private Integer usingStatus;
    private String usingStatusName;
    private Date validTime;
    private String version;
    private String warrantyTime;

    @Data
    public static class Dept {
        private String address;
        private String allowLowerFlag;
        private String ancestors;
        private List<Object> ancestorsList;
        private String appId;
        private String appKey;
        private String appSecret;
        private String area;
        private String areaCode;
        private String areaName;
        private String avatar;
        private String banner;
        private List<Object> children;
        private Integer childrenNum;
        private String containSystem;
        private String contractUrl;
        private String corporator;
        private String corporatorId;
        private String corporatorTel;
        private String createBy;
        private Date createTime;
        private String delFlag;
        private String deptBelongPlatform;
        private Boolean deptExpirationFlag;
        private Long deptId;
        private List<Long> deptIdList;
        private String deptIds;
        private Integer deptLevel;
        private String deptName;
        private Long deptTypeId;
        private Long deptTypeId2;
        private List<Long> deptTypeIdList;
        private String deptTypeName;
        private Integer deviceCount;
        private Long deviceDeptId;
        private String domain;
        private String email;
        private Date endStamp;
        private String endTime;
        private String englishTitle;
        private Date expirationDate;
        private String fireDeptType;
        private String fireManageId;
        private String fireSafeManager;
        private String fireSafeManagerId;
        private String fireSafeManagerTel;
        private String fireSafePerson;
        private String fireSafePersonId;
        private String fireSafePersonTel;
        private Boolean fireSupervision;
        private String fptimeFireManager;
        private String fptimeFireManagerId;
        private String fptimeFireManagerTel;
        private String identityCode;
        private String industryDept;
        private String industryType;
        private Integer installed;
        private String isAsc;
        private Boolean isLastPage;
        private Integer isSpecial;
        private String keyPrefix;
        private Integer lastPageNum;
        private Double latitude;
        private String leader;
        private String level;
        private String licenseUrl;
        private Double longitude;
        private String mappingName;
        private String monitorCenterId;
        private String monitorLevel;
        private String monitorType;
        private String openDeptId;
        private String orderByColumn;
        private String orderNum;
        private String orgLicense;
        private String orgType;
        private Integer pageNum;
        private Integer pageSize;
        private Object params;
        private Long parentId;
        private String parentLeader;
        private String parentName;
        private String parentNames;
        private String parentPhone;
        private String phone;
        private String remark;
        private String salesman;
        private String searchValue;
        private Integer startIdx;
        private Date startStamp;
        private String startTime;
        private String status;
        private Boolean superiorFlag;
        private String sysDeptExtend;
        private Long sysDeptId;
        private List<Object> sysDepts;
        private String sysTransferToDept;
        private String tableName;
        private String title;
        private String todayDate;
        private String tomorrowDate;
        private String tpData;
        private Object tpDept;
        private String typeGroup;
        private Object typeList;
        private String updateBy;
        private Date updateTime;
        private String userkeyPrefix;
    }

    @Data
    public static class DeviceAttr {
        private String attrCode;
        private String attrName;
        private String value;
    }

    @Data
    public static class Contact {
        private Integer bindingPlaceBuildingCount;
        private String captcha;
        private String contactType;
        private Integer contactTypeInt;
        private String createBy;

        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
        private Date createTime;

        private Long deptId;
        private String deptLimit;
        private String deptName;
        private String deviceImei;
        private Date endStamp;
        private String endTime;
        private Long id;
        private String isAsc;
        private Boolean isLastPage;
        private Integer lastPageNum;
        private String mail;
        private String name;
        private String noticeUserConfig;
        private List<Object> noticeUserConfigoticeList;
        private String orderByColumn;
        private Integer orderNum;
        private Integer pageNum;
        private Integer pageSize;
        private Object params;
        private String phoneCode;
        private String phonenumber;
        private Long placeBuildingId;
        private Long placeRoomId;
        private String purePhonenumber;
        private String remark;
        private String searchValue;
        private Integer startIdx;
        private Date startStamp;
        private String startTime;
        private Long sysDeptId;
        private String sysTransferToDept;
        private String tableName;
        private String todayDate;
        private String tomorrowDate;
        private String transferToDept;
        private String updateBy;
        private Date updateTime;
        private String weixin;
    }

    @Data
    public static class PlaceRoom {
        private Integer beRelateCount;
        private String buildingName;
        private String communityName;
        private Integer contactCount;
        private Long contactId;
        private List<Object> contactList;
        private String createBy;

        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
        private Date createTime;

        private String currState;
        private Long deptId;
        private List<Long> deptIdList;
        private String deptLimit;
        private String deptName;
        private Long deptTypeId;
        private String detailedAddress;
        private String deviceA;
        private String deviceAttrCode;
        private Long deviceId;
        private String deviceImei;
        private List<String> deviceImeiList;
        private List<String> deviceImeiSet;
        private String deviceImeis;
        private String deviceType;
        private Long deviceTypeAttrId;
        private Long deviceTypeId;
        private List<Long> deviceTypeIdList;
        private String deviceTypeName;
        private List<Object> deviceTypeSet;
        private String deviceVersionCode;
        private Long deviceVersionId;
        private String deviceVersionName;
        private Boolean editFourth;
        private Boolean editGeneral;
        private Boolean editMain;
        private Boolean editThird;
        private Boolean enabled;
        private Date enabledTime;
        private Date endStamp;
        private String endTime;
        private String firstContactIds;
        private List<Object> firstContactList;
        private Boolean flagRetail;
        private String flagRetailName;
        private String floorName;
        private String fourthContactIds;
        private List<Object> fourthContactList;
        private String generalContactIds;
        private List<Object> generalContactList;
        private String hostImei;
        private Long householdId;
        private String householdIds;
        private List<Object> householdList;
        private Long id;
        private List<Long> idList;
        private String ids;
        private String imeiReverse;
        private String imgPath;
        private String installer;
        private Long installerId;
        private String isAsc;
        private Boolean isLastPage;
        private String isolatePersonnelIds;
        private List<Object> isolatePersonnelList;
        private Integer lastPageNum;
        private String latitude;
        private String longitude;
        private String mainContactIds;
        private List<Object> mainContactList;
        private Long notDeptTypeId;
        private List<String> notDeviceImeiList;
        private String notIdStr;
        private List<Long> notIds;
        private String orderByColumn;
        private Integer pageNum;
        private Integer pageSize;
        private Object params;
        private Long parentId;
        private String phoneCode;
        private String phoneNumber;
        private Object placeBuilding;
        private Long placeBuildingId;
        private List<Long> placeBuildingIds;
        private Long placeCommunityId;
        private Object placeFloor;
        private Long placeFloorId;
        private Long placeRoomId;
        private List<Object> protectionState;
        private String purePhoneNumber;
        private String queryParam;
        private String region;
        private String regionCodeAll;
        private Integer relateCount;
        private String remark;
        private String roomDetailed;
        private String roomName;
        private String searchValue;
        private String secondContactIds;
        private List<Object> secondContactList;
        private Integer startIdx;
        private Date startStamp;
        private String startTime;
        private String switchState;
        private Long sysDeptId;
        private String sysTransferToDept;
        private String tableName;
        private String thirdContactIds;
        private List<Object> thirdContactList;
        private String todayDate;
        private String tomorrowDate;
        private String transferToDept;
        private String updateBy;
        private Date updateTime;
        private Boolean usingStatus;
        private String usingStatusName;
    }
}